High-Level Multi-Threading in hProlog

نویسندگان

  • Timon Van Overveldt
  • Bart Demoen
چکیده

A new high-level interface to multi-threading in Prolog, implemented in hProlog, is described. Modern CPUs often contain multiple cores and through high-level multi-threading a programmer can leverage this power without having to worry about low-level details. Two common types of high-level explicit parallelism are discussed: independent and-parallelism and competitive or-parallelism. A new type of explicit parallelism, pipeline parallelism, is proposed. This new type can be used in certain cases where independent and-parallelism and competitive orparallelism cannot be used.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Supporting more types in the WAM: the hProlog tagging schema

Starting from dProlog, we developed hProlog to become a back end for HAL. We incorporated attributed variables, the data types string and character and support for bigints. We describe how we managed to cater for all these, while not further restricting the heap address space and without efficiency loss. We explain the rationale behind some decisions, the effect on indexing, some new low-level ...

متن کامل

Coordination and Concurrency in Multi-engine Prolog

We discuss the impact of the separation of logic engines (independent logic processing units) and multi-threading on the design of coordination mechanisms for a Prolog based agent infrastructure. We advocate a combination of coroutining constructs with focus on expressiveness and a simplified, multi-threading API that ensures optimal use available parallelism. In this context, native multi-thre...

متن کامل

Efficient parallelization of the genetic algorithm solution of traveling salesman problem on multi-core and many-core systems

Efficient parallelization of genetic algorithms (GAs) on state-of-the-art multi-threading or many-threading platforms is a challenge due to the difficulty of schedulation of hardware resources regarding the concurrency of threads. In this paper, for resolving the problem, a novel method is proposed, which parallelizes the GA by designing three concurrent kernels, each of which running some depe...

متن کامل

Prefetch Threads for Database Operations on a Simultaneous Multi-threaded Processor

Simultaneous Multi-threading (SMT) has been developed to increase instruction level parallelism by allowing instructions from a different thread to run during a stall. Inter-thread cache interference, however, might limit the benefit of running multiple independent threads. SMT processors can be utilized in a different model, where a helper thread is used to prefetch cache blocks for the main e...

متن کامل

Concurrent Programming Constructs and First-Class Logic Engines

Multi-threading has been adopted in today’s Prolog implementations as it became widely available in implementation languages like C or Java. An advantage of multi-threading over more declarative concurrency models like various AND-parallel and OR-parallel execution schemes, is that it maps to the underlying hardware directly: on typical multi-core machines threads and processes are mapped to di...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • CoRR

دوره abs/1112.3786  شماره 

صفحات  -

تاریخ انتشار 2011